package main

import (
	"fmt"
	"time"
)

/*
*
time.Tick()
time.Tick() 是对time.NewTicker 的封装。最好不要使用该方法，除非你准备将chan作为返回结果并在程序的整个生命周期中继续使用它
正如官方描述：垃圾收集器无法恢复底层的Ticker,出现"泄露" 谨慎使用，如有疑问请改用Tikcer
使用time.Tick(时间间隔)可以设置定时器，定时器的本质值一个通道（channel），到时间就会将当前时间放入通道，time.Tick() 的功能和NewTicker()几乎一样
*/

func main() {
	ticker := time.Tick(time.Second) //定义一个1秒间隔的定时器，Tick是周期定时器
	tag := 0
	for i := range ticker { //遍历定时器 ticker
		tag++
		fmt.Println(i) //每秒都会执行的任务
		if tag == 10 {
			break
		}
	}
}

/**
可见，定时器 ticker 相当于一个通道（channel），它每隔一秒，就产生一个时间对象。（这个通道每隔一秒就放进一个当时时间的时间对象）
*/
